/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package clases;

/** Clase IndicadorElementos
 * Esta permite guardar el conjunto de operaciones sobre grupos de formulas que 
 * contienen totalizaciones (llamadas IndicadorTotalizacion)
 * @Author Gimbet
 */
public class IndicadorElementos {
    private int idIndicadorElementos;
    private IndicadorTotalizacion indicadorTotalizacion1 = new IndicadorTotalizacion();
    private IndicadorTotalizacion indicadorTotalizacion2 = new IndicadorTotalizacion();
    private String operacion = "";
    private int valor;

    public IndicadorElementos(IndicadorTotalizacion indicadorTotalizacion1, IndicadorTotalizacion indicadorTotalizacion2, String operacion) {
        this.indicadorTotalizacion1 = indicadorTotalizacion1;
        this.indicadorTotalizacion2 = indicadorTotalizacion2;
        this.operacion = operacion;
    }

    public IndicadorElementos() {
    }

    public IndicadorTotalizacion getIndicadorTotalizacion1() {
        return indicadorTotalizacion1;
    }

    public void setIndicadorTotalizacion1(IndicadorTotalizacion indicadorTotalizacion1) {
        this.indicadorTotalizacion1 = indicadorTotalizacion1;
    }

    public IndicadorTotalizacion getIndicadorTotalizacion2() {
        return indicadorTotalizacion2;
    }

    public void setIndicadorTotalizacion2(IndicadorTotalizacion indicadorTotalizacion2) {
        this.indicadorTotalizacion2 = indicadorTotalizacion2;
    }

    public String getOperacion() {
        return operacion;
    }

    public void setOperacion(String operacion) {
        this.operacion = operacion;
    }

    public int getValor() {
        return valor;
    }

    public void setValor(int valor) {
        this.valor = valor;
    }

    public int getIdIndicadorElementos() {
        return idIndicadorElementos;
    }

    public void setIdIndicadorElementos(int idIndicadorElementos) {
        this.idIndicadorElementos = idIndicadorElementos;
    }
    
        public double calcular(){
            double totalizacion1 = this.getIndicadorTotalizacion1().calcular();
            double totalizacion2 = 0.0;
            if (this.getIndicadorTotalizacion2().getIdIndicadorTotalizacion() > 0){
                System.out.println("No es nula Indicador2"+ this.getIndicadorTotalizacion2().getIdIndicadorTotalizacion());
                totalizacion2 = this.getIndicadorTotalizacion2().calcular();
            }
            double valorFinal = Double.parseDouble(Integer.toString(this.valor));
            System.out.println("Valor Final del IndicadorElementos "+valorFinal);
        if (operacion.equals("+")){
            if (totalizacion2>0.0){
                return totalizacion1 + totalizacion2;
            }
            return totalizacion1 + valorFinal;
        }
        else if (operacion.equals("-")){
           if (totalizacion2>0.0){
                return totalizacion1 - totalizacion2;
            }
            return totalizacion1 - valorFinal;
        }
        else if (operacion.equals("*")){
            if (totalizacion2>0.0){
                return totalizacion1 * totalizacion2;
            }
             return totalizacion1 * valorFinal;
        }
        else if (operacion.equals("/")){
            if (totalizacion2>0.0){
                return totalizacion1 / totalizacion2;
            }
            if (valorFinal > 0) {
              return totalizacion1/ valorFinal;
            }
            else{
                return 0;
            }
        }
        else{
            return 0.0;
        }
    }
}
